AVoid size allocation loops
authorMatthias Clasen <matthiasc@src.gnome.org>
Wed, 31 Dec 2008 02:44:46 +0000 (02:44 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 31 Dec 2008 02:44:46 +0000 (02:44 +0000)
svn path=/trunk/; revision=22019

ChangeLog
gtk/gtkentry.c

index af4d7cec48a7ccc56416143409bb236e4796b420..e5d239b0b6a2e7c55b4e0a46a893c1f558628f77 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2008-12-30  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkentry.c: Avoid size allocation loops.
+
 2008-12-30  Matthias Clasen  <mclasen@redhat.com>
 
        * gtk/gtkentry.c: Fix errors in property definitions and
index 7da90a2e11b04ed3d6b6975f20504216c89faa99..b2a38f0c7fa7de49c78157333ac21c47bd9e54ff 100644 (file)
@@ -2488,8 +2488,6 @@ gtk_entry_realize (GtkWidget *widget)
             realize_icon_info (widget, i);
         }
     }
-
-  gtk_widget_queue_resize (widget);
 }
 
 static void
@@ -6191,8 +6189,6 @@ gtk_entry_ensure_pixbuf (GtkEntry             *entry,
 
   if (GDK_IS_WINDOW (icon_info->window))
     gdk_window_show (icon_info->window);
-
-  gtk_widget_queue_resize (GTK_WIDGET (entry));
 }
 
 
@@ -7088,6 +7084,9 @@ gtk_entry_set_icon_from_pixbuf (GtkEntry             *entry,
 
   gtk_entry_ensure_pixbuf (entry, icon_pos);
   
+  if (GTK_WIDGET_VISIBLE (entry))
+    gtk_widget_queue_resize (GTK_WIDGET (entry));
+
   g_object_thaw_notify (G_OBJECT (entry));
 }
 
@@ -7149,6 +7148,9 @@ gtk_entry_set_icon_from_stock (GtkEntry             *entry,
 
   gtk_entry_ensure_pixbuf (entry, icon_pos);
 
+  if (GTK_WIDGET_VISIBLE (entry))
+    gtk_widget_queue_resize (GTK_WIDGET (entry));
+
   g_object_thaw_notify (G_OBJECT (entry));
 }
 
@@ -7213,6 +7215,9 @@ gtk_entry_set_icon_from_icon_name (GtkEntry             *entry,
 
   gtk_entry_ensure_pixbuf (entry, icon_pos);
 
+  if (GTK_WIDGET_VISIBLE (entry))
+    gtk_widget_queue_resize (GTK_WIDGET (entry));
+
   g_object_thaw_notify (G_OBJECT (entry));
 }
 
@@ -7274,6 +7279,9 @@ gtk_entry_set_icon_from_gicon (GtkEntry             *entry,
 
   gtk_entry_ensure_pixbuf (entry, icon_pos);
 
+  if (GTK_WIDGET_VISIBLE (entry))
+    gtk_widget_queue_resize (GTK_WIDGET (entry));
+
   g_object_thaw_notify (G_OBJECT (entry));
 }